package com.liuyi.netty.im.server.handle.service;

import com.liuyi.netty.im.commons.codes.data.event.Message;
import com.liuyi.netty.im.commons.codes.data.event.Session;
import com.liuyi.netty.im.commons.codes.data.event.message.playload.Playload;

import java.util.List;

/**
 * 会话接口
 */
public interface SessionService {

    /**
     * 按用户id 获取会话列表
     *
     * @param userId 消息id
     * @return 会话列表
     */
    List<Session> listByUserId(String userId);

    /**
     * 按用户 and 会话id 查询会话
     *
     * @param userId    用户id
     * @param sessionId 会话id
     * @return 会话
     */
    Session getByUserAndSessionId(String userId, String sessionId);

    /**
     * 储存会话最后一条消息
     *
     * @return 会话
     */
    Session setLastMessage(String userId, String sessionId, Message<? extends Playload> message);
}
